﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Dimok.Web.UI {

	////////////////////////////////////////////////////////////////////////////////////////////////////
	/// <summary>	Page base. </summary>
	///
	/// <remarks>	Dimon, 12/21/2010. </remarks>
	////////////////////////////////////////////////////////////////////////////////////////////////////

	public class PageBase : System.Web.UI.Page {

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Filter page type. </summary>
		///
		/// <remarks>	Dimon, 12/21/2010. </remarks>
		///
		/// <param name="control">	The control. </param>
		///
		/// <returns>	. </returns>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		static public string FilterPageType(Control control){
			return typeof(Dimok.Data.DataSources.AObjectDataSourceBase).IsInstanceOfType(control )?
				((Dimok.Data.DataSources.AObjectDataSourceBase)control).Page.GetType().Name :
				control.Page.GetType().Name;
		}

		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// <summary>	Raises the initialise event. </summary>
		///
		/// <remarks>	Dimon, 12/21/2010. </remarks>
		///
		/// <param name="e">	Event information to send to registered event handlers. </param>
		////////////////////////////////////////////////////////////////////////////////////////////////////

		protected override void OnInit(EventArgs e) {
			base.OnInit(e);
			List<Control> dss = Find.ChildrenByType(this, typeof(ObjectDataSource));
			foreach (Control ds in dss)
				foreach (Parameter param in ((ObjectDataSource)ds).SelectParameters)
					if (param is ControlParameter && (((ControlParameter)param).ControlID + "") == "")
						((ControlParameter)param).ControlID = ID != null ? ID : ClientID;

		}
	}
}
